export class IndexService {
  constructor() { }
  getPayload(products, pager, startIndex, endIndex) {
    let paged_products = products || [];
    return {
      content: paged_products.slice(startIndex, endIndex),
      size: pager.size,
      totalElements: paged_products.length,
      number: pager.number
    };
  }
  // 其实这个逻辑可以用在很多地方
  reConcatSelectData(selData, curData, idFlag, isImport) {
    let selIds = selData.map(item => item[idFlag]);
    let curIds = curData.map(item => item[idFlag]);
    let curExitIds = [];
    let curNoExitIds = [];
    let curNoExitArrs = [];
    // 判断selIds中是否有curIds.item
    if (curIds.length) {
      selIds.forEach(item => {
        if (curIds.includes(item)) {
          curExitIds.push(item);
        } else {
          curNoExitIds.push(item);
        }
      });
      // 获取到了不同的种类数组。
      // 然后分别对数组中的数据进行不同的操作。
      // 把已存在的数据+1并进行控制
      curData.forEach(item => {
        curExitIds.forEach(it => {
          if (item[idFlag] === it) {
            // 导入的每一条的数量是多少，这里就加多少
            if (isImport) {
              // 由于it拿到的是id，所以这里要通过id拿到具体的item，感觉绕了一圈更麻烦了。就这B样吧。
              let thisTimeSelectedItem = selData.find(seld => {
                return seld[idFlag] === it;
              });
              item.productCount = Number(item.productCount) + Number(thisTimeSelectedItem.productCount);
            } else {
              // 不是导入的就加1
              item.productCount = Number(item.productCount) + 1;
            }
            // this.$set(item, 'productCount', item.productCount++);
            if (item.productCount > 9999) {
              item.productCount = 9999;
            }
          }
        });
      });
      // 把不存在放入现数组中
      // 把curNoExitIds中的数据从selData中重新拿出来一个数组。
      selData.forEach(item => {
        if (curNoExitIds.includes(item[idFlag])) {
          curNoExitArrs.push(item);
        }
      });
    } else {
      curNoExitArrs = selData;
    }
    return curData.concat(curNoExitArrs);
  }
}
